package com.yyi.springcloud.service;

import com.github.pagehelper.PageInfo;
import com.yyi.springcloud.entities.CurveVo;
import com.yyi.springcloud.entities.TestDataDto;
import com.yyi.springcloud.entities.TestDataModel;
import com.yyi.springcloud.entities.TestDataStatisticsVo;

import java.util.List;

public interface Local_TestDataService {

	public PageInfo<TestDataModel> getTestDataByCondition(String primarykey, String startdate, String enddate,
                                                          int pageNum, int pageSize);

	/**
	 * 根据起始时间查询数据 [起始时间可为空]
	 *
	 * @Description:
	 * @author 高杨
	 * @date 2018年9月28日 下午2:33:44
	 * @return List<TestDataModel>
	 */
	public List<TestDataModel> getTestData2Excel(String primarykey, String startdate, String enddate);

	/**
	 * 2.根据台位号,实验室编码和传感器编码查询改传感器所有的在测数据(跟方法三类似)
	 *
	 * @param labcode
	 * @param testunitno
	 * @param sensorno
	 * @return
	 */
	public List<CurveVo> getSensorAllNowTestData(String labcode, String testunitno, String sensorno);

	/**
	 * 3.根据primaryKey查询该传感器的所有测试数据(跟方法二类似)
	 *
	 * @param labcode
	 * @param primaryKey
	 * @param sensorno
	 * @return
	 */
	public List<CurveVo> getSensorTestDataNow(String labcode, String primaryKey, String sensorno);

	/**
	 * 4.根据primaryKey和传感器编号查询传感器的最新一条测试数据
	 *
	 * @param primaryKey
	 * @param sensorNo
	 * @return
	 */
	public List<TestDataDto> getNewOneTestData(String primaryKey, String sensorNo);

	/**
	 * 5.根据primaryKey查询最新10条测试数据
	 *
	 * @param primaryKey
	 * @return
	 */
	public List<TestDataModel> getTestDataNewTop10(String primaryKey);

	/**
	 * 6.根据primaryKey和传感器编号查询传感器的所有测试数据
	 *
	 * @param primaryKey
	 * @param sensorNo
	 * @return
	 */
	public List<TestDataDto> getAllTestDataByCondition(String primaryKey, String sensorNo);

	/**
	 * 12.根据primaryKey,传感器分组编号,开始时间和结束时间等查询并统计传感器信息(统计值专用)
	 *
	 * @param primaryKey
	 * @param groupNo
	 * @return
	 */
	public List<TestDataStatisticsVo> getStatisticsSensorInfoByCondition(String primaryKey, String groupNo,
                                                                         String start, String end);

	/**
	 * 13.根据开始时间,结束时间,primaryKey,sensorNo查询测试数据
	 *
	 * @param primaryKey
	 * @param sensorNo
	 * @param start
	 * @param end
	 * @return
	 */
	public TestDataStatisticsVo getStatisticsTestDataByCondition(String primaryKey, String sensorNo, double start,
                                                                 double end);

}
